package com.flyduck.modules.schedule.service;

import com.flyduck.common.vo.PageResult;
import com.flyduck.common.vo.QueryVo;
import com.flyduck.modules.schedule.domain.SysScheduleJob;
import com.flyduck.modules.system.domain.SysJob;

/**
 * @author flyduck
 */
public interface SysScheduleJobService {

    /**
     * 分页数据
     * @param queryVo
     * @return
     */
    PageResult findPage(QueryVo queryVo);

    /**
     * 保存定时任务
     * @param sysScheduleJob
     */
    void save(SysScheduleJob sysScheduleJob);

    /**
     * 更新定时任务
     * @param sysScheduleJob
     */
    void update(SysScheduleJob sysScheduleJob);

    /**
     * 根据定时任务id删除定时任务
     * @param id
     */
    void deleteById(Long id);

    /**
     * 立即执行定时任务
     * @param id
     */
    void run(Long id);

    /**
     * 暂停定时任务
     * @param id
     */
    void pause(Long id);

    /**
     * 恢复定时任务
     * @param id
     */
    void resume(Long id);

    /**
     * 根据id查询定时任务
     * @param id
     * @return
     */
    SysScheduleJob getScheduleById(Long id);
}
